'Message.VBX and MsgMore.DLL copyright ⌐ 1995 by Digital PowerTOOLS
'message constants (numerical sequence by category) that you might want to use
'Function declarations are below
'private window base message
Global Const WM_USER = &H400
'Button control messages
Global Const BM_GETCHECK = WM_USER + 0
Global Const BM_SETCHECK = WM_USER + 1
Global Const BM_GETSTATE = WM_USER + 2
Global Const BM_SETSTATE = WM_USER + 3
Global Const BM_SETSTYLE = WM_USER + 4
'Button notification codes
Global Const BN_CLICKED = 0
Global Const BN_PAINT = 1
Global Const BN_HILITE = 2
Global Const BN_UNHILITE = 3
Global Const BN_DISABLE = 4
Global Const BN_DOUBLECLICKED = 5
'ComboBox messages
Global Const CB_GETEDITSEL = (WM_USER + 0)
Global Const CB_LIMITTEXT = (WM_USER + 1)
Global Const CB_SETEDITSEL = (WM_USER + 2)
Global Const CB_ADDSTRING = (WM_USER + 3)
Global Const CB_DELETESTRING = (WM_USER + 4)
Global Const CB_DIR = (WM_USER + 5)
Global Const CB_GETCOUNT = (WM_USER + 6)
Global Const CB_GETCURSEL = (WM_USER + 7)
Global Const CB_GETLBTEXT = (WM_USER + 8)
Global Const CB_GETLBTEXTLEN = (WM_USER + 9)
Global Const CB_INSERTSTRING = (WM_USER + 10)
Global Const CB_RESETCONTENT = (WM_USER + 11)
Global Const CB_FINDSTRING = (WM_USER + 12)
Global Const CB_SELECTSTRING = (WM_USER + 13)
Global Const CB_SETCURSEL = (WM_USER + 14)
Global Const CB_SHOWDROPDOWN = (WM_USER + 15)
Global Const CB_GETITEMDATA = (WM_USER + 16)
Global Const CB_SETITEMDATA = (WM_USER + 17)
Global Const CB_GETDROPPEDCONTROLRECT = (WM_USER + 18)
Global Const CB_SETITEMHEIGHT = (WM_USER + 19)
Global Const CB_GETITEMHEIGHT = (WM_USER + 20)
Global Const CB_SETEXTENDEDUI = (WM_USER + 21)
Global Const CB_GETEXTENDEDUI = (WM_USER + 22)
Global Const CB_GETDROPPEDSTATE = (WM_USER + 23)
Global Const CB_FINDSTRINGEXACT = (WM_USER + 24)
'ComboBox notification codes
Global Const CBN_ERRSPACE = (-1)
Global Const CBN_SELCHANGE = 1
Global Const CBN_DBLCLK = 2
Global Const CBN_SETFOCUS = 3
Global Const CBN_KILLFOCUS = 4
Global Const CBN_EDITCHANGE = 5
Global Const CBN_EDITUPDATE = 6
Global Const CBN_DROPDOWN = 7
Global Const CBN_CLOSEUP = 8
Global Const CBN_SELENDOK = 9
Global Const CBN_SELENDCANCEL = 10
'Edit control messages
Global Const EM_GETSEL = WM_USER + 0
Global Const EM_SETSEL = WM_USER + 1
Global Const EM_GETRECT = WM_USER + 2
Global Const EM_SETRECT = WM_USER + 3
Global Const EM_SETRECTNP = WM_USER + 4
Global Const EM_SCROLL = WM_USER + 5
Global Const EM_LINESCROLL = WM_USER + 6
Global Const EM_GETMODIFY = WM_USER + 8
Global Const EM_SETMODIFY = WM_USER + 9
Global Const EM_GETLINECOUNT = WM_USER + 10
Global Const EM_LINEINDEX = WM_USER + 11
Global Const EM_GETTHUMB = WM_USER + 14
Global Const EM_LINELENGTH = WM_USER + 17
Global Const EM_REPLACESEL = WM_USER + 18
Global Const EM_SETFONT = WM_USER + 19
Global Const EM_GETLINE = WM_USER + 20
Global Const EM_LIMITTEXT = WM_USER + 21
Global Const EM_CANUNDO = WM_USER + 22
Global Const EM_UNDO = WM_USER + 23
Global Const EM_FMTLINES = WM_USER + 24
Global Const EM_LINEFROMCHAR = WM_USER + 25
Global Const EM_SETWORDBREAK = WM_USER + 26
Global Const EM_SETTABSTOPS = WM_USER + 27
Global Const EM_SETPASSWORDCHAR = WM_USER + 28
Global Const EM_EMPTYUNDOBUFFER = WM_USER + 29
Global Const EM_MSGMAX = WM_USER + 30
Global Const EM_GETFIRSTVISIBLELINE = (WM_USER + 30)
Global Const EM_SETREADONLY = (WM_USER + 31)
Global Const EM_SETWORDBREAKPROC = (WM_USER + 32)
Global Const EM_GETWORDBREAKPROC = (WM_USER + 33)
Global Const EM_GETPASSWORDCHAR = (WM_USER + 34)
'Edit control notification codes
Global Const EN_SETFOCUS = &H100
Global Const EN_KILLFOCUS = &H200
Global Const EN_CHANGE = &H300
Global Const EN_UPDATE = &H400
Global Const EN_ERRSPACE = &H500
Global Const EN_MAXTEXT = &H501
Global Const EN_HSCROLL = &H601
Global Const EN_VSCROLL = &H602
'ListBox messages
Global Const LB_ADDSTRING = (WM_USER + 1)
Global Const LB_INSERTSTRING = (WM_USER + 2)
Global Const LB_DELETESTRING = (WM_USER + 3)
Global Const LB_RESETCONTENT = (WM_USER + 5)
Global Const LB_SETSEL = (WM_USER + 6)
Global Const LB_SETCURSEL = (WM_USER + 7)
Global Const LB_GETSEL = (WM_USER + 8)
Global Const LB_GETCURSEL = (WM_USER + 9)
Global Const LB_GETTEXT = (WM_USER + 10)
Global Const LB_GETTEXTLEN = (WM_USER + 11)
Global Const LB_GETCOUNT = (WM_USER + 12)
Global Const LB_SELECTSTRING = (WM_USER + 13)
Global Const LB_DIR = (WM_USER + 14)
Global Const LB_GETTOPINDEX = (WM_USER + 15)
Global Const LB_FINDSTRING = (WM_USER + 16)
Global Const LB_GETSELCOUNT = (WM_USER + 17)
Global Const LB_GETSELITEMS = (WM_USER + 18)
Global Const LB_SETTABSTOPS = (WM_USER + 19)
Global Const LB_GETHORIZONTALEXTENT = (WM_USER + 20)
Global Const LB_SETHORIZONTALEXTENT = (WM_USER + 21)
Global Const LB_SETCOLUMNWIDTH = (WM_USER + 22)
Global Const LB_SETTOPINDEX = (WM_USER + 24)
Global Const LB_GETITEMRECT = (WM_USER + 25)
Global Const LB_GETITEMDATA = (WM_USER + 26)
Global Const LB_SETITEMDATA = (WM_USER + 27)
Global Const LB_SELITEMRANGE = (WM_USER + 28)
Global Const LB_MSGMAX = (WM_USER + 33)
Global Const LB_SETCARETINDEX = (WM_USER + 31)
Global Const LB_GETCARETINDEX = (WM_USER + 32)
Global Const LB_SETITEMHEIGHT = (WM_USER + 33)
Global Const LB_GETITEMHEIGHT = (WM_USER + 34)
Global Const LB_FINDSTRINGEXACT = (WM_USER + 35)
'ListBox notification codes
Global Const LBN_ERRSPACE = (-2)
Global Const LBN_SELCHANGE = 1
Global Const LBN_DBLCLK = 2
Global Const LBN_SELCANCEL = 3
Global Const LBN_SETFOCUS = 4
Global Const LBN_KILLFOCUS = 5
'Multimedia messages
Global Const MM_JOY1MOVE = &H3A0
Global Const MM_JOY2MOVE = &H3A1
Global Const MM_JOY1ZMOVE = &H3A2
Global Const MM_JOY2ZMOVE = &H3A3
Global Const MM_JOY1BUTTONDOWN = &H3B5
Global Const MM_JOY2BUTTONDOWN = &H3B6
Global Const MM_JOY1BUTTONUP = &H3B7
Global Const MM_JOY2BUTTONUP = &H3B8
Global Const MM_MCINOTIFY = &H3B9
Global Const MM_WOM_OPEN = &H3BB
Global Const MM_WOM_CLOSE = &H3BC
Global Const MM_WOM_DONE = &H3BD
Global Const MM_WIM_OPEN = &H3BE
Global Const MM_WIM_CLOSE = &H3BF
Global Const MM_WIM_DATA = &H3C0
Global Const MM_MIM_OPEN = &H3C1
Global Const MM_MIM_CLOSE = &H3C2
Global Const MM_MIM_DATA = &H3C3
Global Const MM_MIM_LONGDATA = &H3C4
Global Const MM_MIM_ERROR = &H3C5
Global Const MM_MIM_LONGERROR = &H3C6
Global Const MM_MOM_OPEN = &H3C7
Global Const MM_MOM_CLOSE = &H3C8
Global Const MM_MOM_DONE = &H3C9
'Static messages
Global Const STM_SETICON = (WM_USER + 0)
Global Const STM_GETICON = (WM_USER + 1)
'Window messages
Global Const WM_NULL = &H0
Global Const WM_CREATE = &H1
Global Const WM_DESTROY = &H2
Global Const WM_MOVE = &H3
Global Const WM_SIZE = &H5
Global Const WM_ACTIVATE = &H6
Global Const WM_SETFOCUS = &H7
Global Const WM_KILLFOCUS = &H8
Global Const WM_ENABLE = &HA
Global Const WM_SETREDRAW = &HB
Global Const WM_SETTEXT = &HC
Global Const WM_GETTEXT = &HD
Global Const WM_GETTEXTLENGTH = &HE
Global Const WM_PAINT = &HF
Global Const WM_CLOSE = &H10
Global Const WM_QUERYENDSESSION = &H11
Global Const WM_QUIT = &H12
Global Const WM_QUERYOPEN = &H13
Global Const WM_ERASEBKGND = &H14
Global Const WM_SYSCOLORCHANGE = &H15
Global Const WM_ENDSESSION = &H16
Global Const WM_SYSTEMERROR = &H17
Global Const WM_SHOWWINDOW = &H18
Global Const WM_CTLCOLOR = &H19
Global Const WM_WININICHANGE = &H1A
Global Const WM_DEVMODECHANGE = &H1B
Global Const WM_ACTIVATEAPP = &H1C
Global Const WM_FONTCHANGE = &H1D
Global Const WM_TIMECHANGE = &H1E
Global Const WM_CANCELMODE = &H1F
Global Const WM_SETCURSOR = &H20
Global Const WM_MOUSEACTIVATE = &H21
Global Const WM_CHILDACTIVATE = &H22
Global Const WM_QUEUESYNC = &H23
Global Const WM_GETMINMAXINFO = &H24
Global Const WM_PAINTICON = &H26
Global Const WM_ICONERASEBKGND = &H27
Global Const WM_NEXTDLGCTL = &H28
Global Const WM_SPOOLERSTATUS = &H2A
Global Const WM_DRAWITEM = &H2B
Global Const WM_MEASUREITEM = &H2C
Global Const WM_DELETEITEM = &H2D
Global Const WM_VKEYTOITEM = &H2E
Global Const WM_CHARTOITEM = &H2F
Global Const WM_SETFONT = &H30
Global Const WM_GETFONT = &H31
Global Const WM_COMMNOTIFY = &H44
Global Const WM_QUERYDRAGICON = &H37
Global Const WM_COMPAREITEM = &H39
Global Const WM_COMPACTING = &H41
Global Const WM_WINDOWPOSCHANGING = &H46
Global Const WM_WINDOWPOSCHANGED = &H47
Global Const WM_POWER = &H48
Global Const WM_NCCREATE = &H81
Global Const WM_NCDESTROY = &H82
Global Const WM_NCCALCSIZE = &H83
Global Const WM_NCHITTEST = &H84
Global Const WM_NCPAINT = &H85
Global Const WM_NCACTIVATE = &H86
Global Const WM_GETDLGCODE = &H87
Global Const WM_NCMOUSEMOVE = &HA0
Global Const WM_NCLBUTTONDOWN = &HA1
Global Const WM_NCLBUTTONUP = &HA2
Global Const WM_NCLBUTTONDBLCLK = &HA3
Global Const WM_NCRBUTTONDOWN = &HA4
Global Const WM_NCRBUTTONUP = &HA5
Global Const WM_NCRBUTTONDBLCLK = &HA6
Global Const WM_NCMBUTTONDOWN = &HA7
Global Const WM_NCMBUTTONUP = &HA8
Global Const WM_NCMBUTTONDBLCLK = &HA9
Global Const WM_KEYFIRST = &H100
Global Const WM_KEYDOWN = &H100
Global Const WM_KEYUP = &H101
Global Const WM_CHAR = &H102
Global Const WM_DEADCHAR = &H103
Global Const WM_SYSKEYDOWN = &H104
Global Const WM_SYSKEYUP = &H105
Global Const WM_SYSCHAR = &H106
Global Const WM_SYSDEADCHAR = &H107
Global Const WM_KEYLAST = &H108
Global Const WM_INITDIALOG = &H110
Global Const WM_COMMAND = &H111
Global Const WM_SYSCOMMAND = &H112
Global Const WM_TIMER = &H113
Global Const WM_HSCROLL = &H114
Global Const WM_VSCROLL = &H115
Global Const WM_INITMENU = &H116
Global Const WM_INITMENUPOPUP = &H117
Global Const WM_MENUSELECT = &H11F
Global Const WM_MENUCHAR = &H120
Global Const WM_ENTERIDLE = &H121
Global Const WM_MOUSEFIRST = &H200
Global Const WM_MOUSEMOVE = &H200
Global Const WM_LBUTTONDOWN = &H201
Global Const WM_LBUTTONUP = &H202
Global Const WM_LBUTTONDBLCLK = &H203
Global Const WM_RBUTTONDOWN = &H204
Global Const WM_RBUTTONUP = &H205
Global Const WM_RBUTTONDBLCLK = &H206
Global Const WM_MBUTTONDOWN = &H207
Global Const WM_MBUTTONUP = &H208
Global Const WM_MBUTTONDBLCLK = &H209
Global Const WM_MOUSELAST = &H209
Global Const WM_PARENTNOTIFY = &H210
Global Const WM_MDICREATE = &H220
Global Const WM_MDIDESTROY = &H221
Global Const WM_MDIACTIVATE = &H222
Global Const WM_MDIRESTORE = &H223
Global Const WM_MDINEXT = &H224
Global Const WM_MDIMAXIMIZE = &H225
Global Const WM_MDITILE = &H226
Global Const WM_MDICASCADE = &H227
Global Const WM_MDIICONARRANGE = &H228
Global Const WM_MDIGETACTIVE = &H229
Global Const WM_MDISETMENU = &H230
Global Const WM_DROPFILES = &H233
Global Const WM_CUT = &H300
Global Const WM_COPY = &H301
Global Const WM_PASTE = &H302
Global Const WM_CLEAR = &H303
Global Const WM_UNDO = &H304
Global Const WM_RENDERFORMAT = &H305
Global Const WM_RENDERALLFORMATS = &H306
Global Const WM_DESTROYCLIPBOARD = &H307
Global Const WM_DRAWCLIPBOARD = &H308
Global Const WM_PAINTCLIPBOARD = &H309
Global Const WM_VSCROLLCLIPBOARD = &H30A
Global Const WM_SIZECLIPBOARD = &H30B
Global Const WM_ASKCBFORMATNAME = &H30C
Global Const WM_CHANGECBCHAIN = &H30D
Global Const WM_HSCROLLCLIPBOARD = &H30E
Global Const WM_QUERYNEWPALETTE = &H30F
Global Const WM_PALETTEISCHANGING = &H310
Global Const WM_PALETTECHANGED = &H311
'WM_NCHITTEST return codes
Global Const HTERROR = -2
Global Const HTTRANSPARENT = -1
Global Const HTNOWHERE = 0
Global Const HTCLIENT = 1
Global Const HTCAPTION = 2
Global Const HTSYSMENU = 3
Global Const HTSIZE = 4
Global Const HTMENU = 5
Global Const HTHSCROLL = 6
Global Const HTVSCROLL = 7
Global Const HTMINBUTTON = 8
Global Const HTMAXBUTTON = 9
Global Const HTLEFT = 10
Global Const HTRIGHT = 11
Global Const HTTOP = 12
Global Const HTTOPLEFT = 13
Global Const HTTOPRIGHT = 14
Global Const HTBOTTOM = 15
Global Const HTBOTTOMLEFT = 16
Global Const HTBOTTOMRIGHT = 17
Global Const HTBORDER = 18
Global Const HTGROWBOX = HTSIZE
Global Const HTREDUCE = HTMINBUTTON
Global Const HTZOOM = HTMAXBUTTON
'global structure types
Type PointAPI
x As Integer
y As Integer
End Type
Type MinMaxInfo
ptReserved As PointAPI
ptMaxSize As PointAPI
ptMaxPosition As PointAPI
ptMinTrackSize As PointAPI
ptMaxTrackSize As PointAPI
End Type
'MsgMore.DLL and Message.VBX should be in your Windows\System directory or in the Path
'many functions accept one or more command strings (command strings are case-insensitive and the function will return -255 or "Invalid Command" if the command is not recognized)
'(this command string feature means that you don't have to declare any global constants, the DLL/VBX does the work for you)
'NOTE: Functions return a value directly and the parameters must be included in parantheses
' Subs may return a value in a VB string and the parameters must NOT be included in parantheses
'NOTE: descriptions follow each declaration; however, you should refer to the HLP file for more extensive documentation
'NOTE: Some SUBS require you to set ReturnString$=space$(255) before calling and TrimAtNull(ReturnString$) after calling.
' This is because VB does not end characters in a NULL (chr$(0)) character.
' The DLL could write directly to a new VB string avoiding this situational requirement,
' however, this would prevent Messsage from being used by other Windows programming languages.
' As is, Message can be safely used from any Windows programming language including:
' C, C++, PowerPoint, dbFast, dBase for Windows, CA-Realizer, etc. (and, of course, Visual Basic)
'Message functions and subs
Declare Sub MessageDataGet Lib "Message.VBX" (ByVal lParam&, ByVal DataSize%, DataType As Any)
'used within a Receive event to obtain pointer data
Declare Sub MessageDataSet Lib "Message.VBX" (ByVal lParam&, ByVal DataSize%, DataType As Any)
'used within a Receive event to change pointer data
Declare Function GetVersionInfo% Lib "MsgMore.DLL" (ByVal Application$, ByVal VersionType$)
'determines version of assorted files
'Application$="Windows", "Dos", or "Message"
'VersionType$=major, minor, or full (full=major*100+minor)
Declare Function GetCPU% Lib "MsgMore.DLL" ()
'returns 286, 386, or 486 as an integer determining the system CPU (actually, 486 is 486 or better)
Declare Function IsMathPresent% Lib "MsgMore.DLL" ()
'returns -1 (TRUE) if a Math Coprocessor is present, returns 0 (FALSE) otherwise
Declare Function GetStateOfKey% Lib "MsgMore.DLL" (ByVal KeyName$)
'returns -1 (TRUE) if the key is depressed; returns 0 (FALSE) otherwise
'KeyName$="ScrollLock", "NumLock", "CapsLock", "Lshift", "Rshift", "Control", or "Alt"
Declare Function GetFreeMem& Lib "MsgMore.DLL" (ByVal InfoType$)
'determines assorted memory availabilities
'InfoType$="system", "gdi", "user", "space", or "contiguous"
'NOTE: "system", "gdi", and "user" return a percentage free
' ("gdi" is graphics workspace, "user" is module space, and "system" is the lower of these two)
' "space" and "contiguous" return the number of bytes (divide by 1024 to obtain kb free)
' ret&=GetFreeMem("contiguous") also clears any unused, discarded memory blocks
Declare Function IsModeEnhanced% Lib "MsgMore.DLL" ()
'returns -1 (TRUE) if in 386 Enhanced Mode, returns 0 (FALSE) if in Standard Mode
'these functions extract the specified byte/word component from a number
'NOTE: VB integers reserve bit 15 of integers as a sign bit
Declare Function GetHighByte% Lib "MsgMore.DLL" (ByVal OrginalInt%)
Declare Function GetLowByte% Lib "MsgMore.DLL" (ByVal OrginalInt%)
Declare Function GetHighWord& Lib "MsgMore.DLL" (ByVal OrginalLong&)
Declare Function GetLowWord& Lib "MsgMore.DLL" (ByVal OrginalLong&)
Declare Function TestBit% Lib "MsgMore.DLL" (ByVal TestInteger%, ByVal BitToTest%)
'tests to see if the selected bit (0-15) is set
'returns -1 (TRUE) if set; returns 0 (FALSE) if not
Declare Function GetColorValue% Lib "MsgMore.DLL" (ByVal GetColor$, ByVal RGBcolor&)
'derives the specified color from an RGB color
'GetColor$="blue", "red", or "green"
Declare Function WordColor& Lib "MsgMore.DLL" (ByVal ColorName$)
'allows color selection with words instead of numbers
'works anywhere that you would normally use QBCOLOR or RGB
'Basic Color Words (include appropriate quotes around string):
'These System Color Words are defined for each Windows system's color scheme (they will vary from system to system depending on the user's color scheme configuration)
'Windows API functions
Declare Function PostMessage% Lib "User" (ByVal hWnd%, ByVal wMsg%, ByVal wParam%, ByVal lParam As Any)
Declare Function SetWindowText% Lib "User" (ByVal hWnd%, ByVal lpString$)
Declare Sub ScreenToClient Lib "User" (ByVal hWnd%, lpPoint As PointAPI)
Declare Function GetMenu% Lib "User" (ByVal hWnd%)